package com.x.erp.rpc;

import java.util.Date;
import java.util.List;
import java.util.Map;

import com.x.erp.model.SaleBill;
import com.x.framework.rpc.BaseRpcService;

public interface SaleBillRpcService extends BaseRpcService {

	public int selectSaleBillNum(SaleBill saleBill);

	public List<SaleBill> selectSaleBillList(SaleBill saleBill);

	public SaleBill insertSaleBill(SaleBill saleBill);

	public void updateSaleBill(SaleBill saleBill);

	public void deleteSaleBill(SaleBill saleBill);

	/**
	 * 统计今日成交信息
	 * @param saleBill
	 * @return
	 */
	public Map<String, Object> selectTodaySaleInfo(SaleBill saleBill);

	/**
	 * 查询本月成交信息
	 * @param saleBill
	 * @return
	 */
	public Map<String, Object> selectThisMonthSaleInfo(SaleBill saleBill);

	/**
	 * 查询累计成交信息
	 * @param saleBill
	 * @return
	 */
	public Map<String, Object> selectTotalSaleInfo(SaleBill saleBill);

	/**
	 * 条件查询成交信息
	 * @param saleBill
	 * @param startDate 开始时间
	 * @param endDate 结束时间
	 * @return
	 */
	public Map<String, Object> selectSaleInfoByCondition(SaleBill saleBill, Date startDate, Date endDate);

	/**
	 * 查询市场销售情况
	 * @param saleBill
	 * @param startDate 开始时间
	 * @param endDate 结束时间
	 * @return
	 */
	public List<Map<String, Object>> selectMarketSaleInfo(SaleBill saleBill, Date startDate, Date endDate);

	/**
	 * 查询商铺成交量排行
	 * @param saleBill
	 * @param startDate 开始时间
	 * @param endDate 结束时间
	 * @return
	 */
	public List<Map<String, Object>> selectShopSaleRank(SaleBill saleBill, Date startDate, Date endDate);

	/**
	 * 查询销售额排行
	 * @param saleBill
	 * @param startDate 开始时间
	 * @param endDate 结束时间
	 * @return
	 */
	public List<Map<String, Object>> selectSalesVolumeRank(SaleBill saleBill, Date startDate, Date endDate);

	/**
	 * 查询畅销品牌排行
	 * @param saleBill
	 * @param startDate 开始时间
	 * @param endDate 结束时间
	 * @return
	 */
	public List<Map<String, Object>> selectBrandRank(SaleBill saleBill, Date startDate, Date endDate);

	/**
	 * 查询车型排行
	 * @param saleBill
	 * @param startDate 开始时间
	 * @param endDate 结束时间
	 * @return
	 */
	public List<Map<String, Object>> selectModelRank(SaleBill saleBill, Date startDate, Date endDate);

	/**
	 * 查询颜色排行
	 * @param saleBill
	 * @param startDate 开始时间
	 * @param endDate 结束时间
	 * @return
	 */
	public List<Map<String, Object>> selectColorRank(SaleBill saleBill, Date startDate, Date endDate);

	/**
	 * 查询区域销售信息
	 * @param saleBill
	 * @param startDate
	 * @param endDate
	 * @return
	 */
	public List<Map<String, Object>> selectAreaSaleInfo(SaleBill saleBill, Date startDate, Date endDate);

	/**
	 * 查询价格排行
	 * @param saleBill
	 * @param startDate
	 * @param endDate
	 * @return
	 */
	public List<Map<String, Object>> selectPriceRank(SaleBill saleBill, Date startDate, Date endDate);

	/**
	 * 查询月销售信息
	 * @param saleBill
	 * @param startDate
	 * @param endDate
	 * @return
	 */
	public List<Map<String, Object>> selectMonthSaleInfo(SaleBill saleBill, Date startDate, Date endDate);

}
